import scrapy
import datetime

# 58同城案例
# 运行指令：scrapy crawl 58tc 或者 scrapy crawl 58tc -o xxx.json
class TcSpider(scrapy.Spider):
    name = '58tc'

    # 为不同该爬虫生成独立的日志文件（如 爬虫名_时间戳.log）
    # 爬虫类中通过 custom_settings 覆盖全局配置，且该变量名不可修改是scrapy框架的固定属性名：
    custom_settings = {
        'LOG_FILE': f"logs/{name}_{datetime.datetime.now().strftime('%Y%m%d_%H%M%S')}.log",
        # 管道优先级（高于 settings.py 中的 ITEM_PIPELINES属性），暂时置空
        'ITEM_PIPELINES': {  }
    }

    # 允许爬取的域名
    allowed_domains = ['su.58.com']
    # 即浏览器原始地址：https://su.58.com/sou/?key=前端开发
    start_urls = ['https://su.58.com/sou/?key=%E5%89%8D%E7%AB%AF%E5%BC%80%E5%8F%91']
 
    def parse(self, response):
        print("58同城爬取中...")
        # 字符串数据，response.text用于获取响应的内容
        content = response.text
        print(content)
        # 二进制数据
        content = response.body
        print(content)
        print(response)
        
        # xpath（全称XML Path Language，即XML路径语言）解析
        span = response.xpath('//div[@id="filter"]/div[@class="tabs"]/a/span')[0]
        # 提取标签的data属性值
        print(span.extract)
        print("...58同城爬成功！")
